﻿<%@ Application Language="C#" %>
<script RunAt="server">

    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码

    }

    void Application_End(object sender, EventArgs e)
    {
        //  在应用程序关闭时运行的代码

    }

    void Application_Error(object sender, EventArgs e)
    {
        // 在出现未处理的错误时运行的代码
        Exception ex = Server.GetLastError();
        bool LogInFile = bool.Parse(ConfigurationManager.AppSettings.Get("LogInFile"));
        bool LogInDB = bool.Parse(ConfigurationManager.AppSettings.Get("LogInDB"));
        string LogLastDays = ConfigurationManager.AppSettings.Get("LogLastDays");
        string errmsg = "";
        string Particular = "";
        if (ex.InnerException != null)
        {
            errmsg = ex.InnerException.Message;
            Particular = ex.InnerException.StackTrace;
        }
        else
        {
            errmsg = ex.Message;
            Particular = ex.StackTrace;
        }

        if (LogInFile)
        {
            string path = "~/ErrorMsg/" + DateTime.Today.ToString("yyyyMMdd") + ".txt";

            if (!System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
            {
                System.IO.File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close();
            }
            using (System.IO.StreamWriter w = System.IO.File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path)))
            {
                w.WriteLine("\r\nLog Entry : ");
                w.WriteLine("{0}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
                string err = System.Web.HttpContext.Current.Request.Url.ToString();
                w.WriteLine(err);
                w.WriteLine(errmsg);
                w.WriteLine(Particular);
                w.WriteLine("____________________________________________________");
                w.Flush();
                w.Close();
            }
        }
        if (LogInDB)
        {
            ////Assistant.AddLog(errmsg, Particular);
            ////Assistant.DelOverdueLog(LogLastDays);
        }
        //Server.Transfer("ErrorMsg.aspx");

    }

    void Session_Start(object sender, EventArgs e)
    {
        // 在新会话启动时运行的代码

    }

    void Session_End(object sender, EventArgs e)
    {
        // 在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时，才会引发 Session_End 事件。
        // 如果会话模式设置为 StateServer 
        // 或 SQLServer，则不会引发该事件。

    }
       
</script>
